Sesión 6

Curso: R Aplicado a los Proyectos de Investigación


Percy Soto-Becerra, M.D., M.Sc(c)

InkaStats Data Science Solutions | Medical Branch

2022-10-14

  https://github.com/psotob91

Introducción a la inferencia estadística

Agenda

  1. Introducción a la inferencia estadística

  2. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Uno o dos grupos

  3. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Tres o más grupos

  4. Pruebas de hipótesis para variables respuesta categóricas

Inferencia Estadística

  • Rama de la Estadística que trata sobre procedimientos que permiten obtener conclusiones de la población basándonos en los datos de una sola muestra.

  • Hay dos enfoques predominantes:

    • Frecuentista
    • Bayesianismo
  • En este curso, como en la mayoría de cursos básicos, seguiremos el enfoque frecuentista.

Inferencia Estadística bajo la lupa frecuentista

  • Los procedimientos de prueba de hipóteis y de estimación de intervalos de confianza trabajan bajo el enfoque frecuentista.

  • Es la estadística de pre-grado (y post-grado).

  • Trabaja bajo la idea que puedes repetir infnitas o muchísimas veces el mismo estudio, pero sobre una nueva muestra aleatoria obtenida.

Estimación

Estimación (cont.)

Prueba de hipótesis

Lógica frecuentista

La distribución muestral es lo importante!

  • No importa tanto la distribución de la muestra o de la población.

  • Si no que la distribución de todas las muestras posibles siga cierto comportamiento!

La distribución muestral es lo importante

Prueba de Hipótesis (PH)

  • “Método para evaluar una afirmación o hipótesis sobre un parámetro poblacional usando datos de una muestra.”

  • Usar métodos estadísticos para determinar la probabilidad de que nuestras hipótesis sean consistentes con los datos.

    • Bajo ciertas suposiciones y puntos de corte, podemos tomar decisiones acerca de en qué creemos o no.
    • Como toda decisión, esta se mantiene hasta encontrar nueva evidencia en contra. Son decisiones ‘temporales’.

PH (cont.)

  • Depende del tipo de variables incluidas, de su distribución, del pareamiento, etc.

  • Los métodos de prueba de hipótesis que veremos hoy se basan en la Hipótesis Nula, por ende, su nombre completo (a menudo obviado) es: Prueba de Significancia de Hipótesis Nula.

PH (cont.)

Alerta terminológica!

  • Cuando nos referimos a ‘probar’ una hipótesis nos estamos refiriendo a la traducción del inglés ‘test’, que significa ‘evaluar’, ‘someter a prueba’.

  • Esta es una evaluación empírica: basada en los dato que tenemos disponibles.

  • Los datos provienen a menudo de muestras, ergo, parte de lo que observamos podría deberse a que nos tocó ‘por azar’ una muestra extrema o ‘rara’.

  • A menudo, confundimos ‘probar’ con ‘demostrar’.

  • En estadística no demostramos nunca.

  • Solo comprobamos, es decir, vemos datos y confirmamos nuestros hallazgos si son parecidos o los falseamos si son diferentes.

PH (cont.)

Otra alerta terminológica!

  • Nos interesan hipótesis estadísticas acerca de la población, no sobre la muestra.

  • Usamos un estadístico calculado de los datos de la muestra para probar una hipótesis acerca de un parámetro de la población.

  • Nunca probamos hipótesis sobre individuos de la población (p. ej., el peso de un individuo), si no sobre parámetros de la población (p. ej., el promedio de peso de la población).

  • Para una misma variable pueden interesarnos parámetros diferentes (p. ej., mediana de peso versus media de peso versus desviación estándar de peso).

¿Qué solemos probar o estimar?

  • Acerca de un parámetro: PH contra valor hipotético o estimar el parámetro de una población.

Note

Ej. 1. Tengo dudas acerca de si una prueba de laboratorio de anticuerpos mide bien o no: ¿El promedio de anticuerpos en mis pocillos control es igual o diferente que el especificado en el inserto?

Note

Ej. 2. La adherencia a una guía de práctica clínica se evalúa de acuerdo a un punto de corte establecido: ¿El porcentaje de cumplimiento de la GPC es mayor a 80%?

¿Qué solemos probar o estimar? (cont.)

  • Acerca de dos o más parámetros:

Note

Ej. 1. Quiero saber si un nuevo medicamento reduce la presión arterial: ¿El promedio de presión arterial de la población que toma el medicamento es menor o mayor igual que el promedio de presión arterial de la población que no toma el medicamento?

Note

Ej. 2. Tengo dudas acerca de si un medicamento aumenta la incidencia de cura de COVID-19: ¿La incidencia acumulada de cura a 1 mes de la población que toma el medicamento es mayor o menor igual que la incidencia acumulada de cura a 1 mes de la población que no toma el medicamento?

La inferencia estadística puede tener 2 usos:

  1. Describir diferencias entre dos poblaciones usando datos de muestra.

    • Ejemplo: Comparar prevalencia de anemia por regiones. Las regiones no causan anemia, pero saber estas diferencias regionales nos permite conocer las inequidades. Estamos comparando dos poblaciones diferentes.
  2. Hacer inferencias causales.

    • Ejemplo: Estimar la eficacia o efectividad de las vacunas. Queremos inferir qué le hubiera pasado a una población si tomara un tratamiento contrafactual. Estamos comparando la misma población contra sigo misma en un universo contrafactual.

Procedimiento de prueba de hipótesis

  1. Formular las hipótesis nula y alterna.

  2. Establecer los criterios de decisión para evaluar la veracidad de la hipótesis nula.

  3. Asumir que la H0 es verdadera y estimar la probabilidad de observar un valor igual o más extremo que el valor observado si pudieramos repetir el estudio infinitas veces (o al menso un número muy grande!). Esto es el valor p.

  4. Tomar una decisión respecto a si creemos o no en la hipótesis nula.

¿Qué es el valor p?

  • Probabilidad de…

  • Observar un determinado valor o más extremo.

  • En una muestra aleatoria de tamaño “n”.

  • Dado que asumimos que la hipótesis nula es verdadera.

Criterios de decisión

  • Basado en el nivel de significancia estadístico (usualmente 5%, pero puede cambiar y a menudo cambia).

Valor p mide la probabilidad de observar, en una muestra, un determinado valor o más extremo que este valor si la muestra proviniera de una población donde la hipótesis nula es verdadero.

Ejemplo 1

  • Si p = 30%, quiere decir que en 100 muestras al azar de una población donde la H0 es verdadera, en 30 encontraríamos un estadístico igual o más extremo que el observado en la muestra.

  • Es decir, es muy común encontrar estos valores en muestras tomadas de una población donde la H0 es verdadera.

  • Por lo tanto decido suponer que no tengo evidencia suficiente para concluir que la H0 sea falsa.

  • Esta decisión, si es errónea, puede tener consecuencias.

Criterios de decisión (cont.)

Valor p mide la probabilidad de observar, en una muestra, un determinado valor o más extremo que este valor si la muestra proviniera de una población donde la hipótesis nula es verdadero.

Ejemplo 2

  • Si p = 1%, quiere decir que en 100 muestras al azar de una población donde la H0 es verdadera, solo en 1 encontraríamos un estadístico igual o más extremo al observado.

  • Es decir, es muy raro encontrar estos valores en muestras tomadas de una población de una población donde la H0 es verdadera. Es posible, pero improbable.

  • Por lo tanto, pensamos mal, y decidimos suponer que es más probable que la H0 sea falsa a que nos haya tocado una muestra extrema siendo la H0 verdadera.

  • Decido rechazar la H0.

  • Esta decisión, si es errónea, puede tener consecuencias.

Criterios de decisión (cont.)

Errores de decisión

Definición de intervalo de confianza al P%

  • Rango de valores que contendrían el verdadero valor del parámetro P% de las veces, si pudiera repetir el estudio muchísimas veces con muestras aleatorias diferentes del mismo tamaño.

  • El IC95% significa que si pudiera tuviera 100 estudios similares, con mismo n pero muestras aleatorias diferentes, aprox. 95 estudios tendrían IC que capturarían el verdadero valor.

Definición de intervalo de confianza al P% (cont.)

  • No significa que el IC95% que yo observo tiene un 95% de obtener el valor del parámetro.

  • De hecho, la probabilidad de que el IC95% que yo observo en mi estudio contenga el valor del parámetro no se puede estimar en estadística frecuentista, pero sabemos que es 1 (lo contiene) o 0 (no lo contiene). No admite valores intermedios.

Procedimientos para Intervalos de Confianza

  • Use el valor puntual como la mejor estimación del parámetro disponible basada en los datos.

  • Estime un error estándar para la distribución muestral del estadístico de interés.

  • Asuma una distribución muestral conocida para el estaditico de interés.

  • Con estos dos insumos, calcule los límites del intervalo de confianza.

12 Errores de concepto acerca del valor p

Si la hipótesis nula es cierta, siempre será posible que algunos estudios den valores muy extremos…

Intervalos de confianza y valor p

  • IC 95% también pueden ser usados para probar hipótesis

  • A menudo complementan información.

  • En algunas revistas, el valor p ha sido baneado.

  • Incluso en revistas donde el valor p no ha sido baneado, el IC95% es indispensable y el valor p un complemento.

  • Adecuadamente interpretado, el IC da más información que el valor p acerca de la imprecisión (incertidumbre asociada) de la estimación.

  • Su lectura es tan útil, que varios instrumentos de valoración de la certeza de la evidencia lo usan (p. ej., GRADE).

Intervalos de confianza pueden brindar un poco más de información

  • Si se interpretan apropiadamente, pueden “ilustrar” mejor la incertidumbre asociada a la estimación.

Ejemplos de importancia del IC para valorar imprecisión (incertidumbre) de las estimaciones

Ejemplos de importancia del IC para valorar imprecisión (incertidumbre) de las estimaciones (cont.)

Otro ejemplo de importancia del IC para valorar imprecisión (incertidumbre) de las estimaciones

Significancia estadística vs Significancia clínica

  • La significancia estadística es solo una probabilidad (una medida de incertidumbre asociada a la estimación); siempre existe la posibilidad de error (tipo I y tipo II).

  • Los intervalos de confianza pueden ayudar a entender mejor esta incertidumbre, si y solo si también se interpretan bien.

  • La incertidumbre que miden no es la que usualmente pensamos (hay muchos errores de conceptos!!).

Significancia estadística vs Significancia clínica (cont.)

  • Grandes tamaños de muestra permiten detectar diferencias pequeñas.

  • Tamaños de muestra muy grandes resultarán en diferencias estadísticamente significativas; incluso si la diferencia clínica no es significativa.

Significancia estadística vs Significancia clínica (cont.)

Las pruebas de hipótesis tradicionales a menudo no se usan en la práctica habitual

  • Estas pruebas, son los ladrillos sobre los que se construyen otros métodos que son el estándar actual de análisis estadístico en investigación en salud: Modelos estadísticos

  • Es muy raro encontrar un ejemplo actual donde sea válidas usarlas. Su gran problema es que no permiten controlar el efecto de otras variables.

Las pruebas de hipótesis tradicionales a menudo no se usan en la práctica habitual (cont.)

  • Usarlas para concluir potenciales efectos puede ser peligroso.

  • Incluso los ensayos clínicos aleatorizados no hacen uso de estas directamente, sino incorporadas como parte de modelos de regresión.

  • Usar pruebas estadísticas cuando no son válidas para responder las preguntas científicas es peligroso.

Pruebas de hipótesis versus modelos estadísticos (ejemplo en estudio observacional)

Pruebas de Hipótesis

Pruebas de Hipótesis Paramétricas

Pruebas de Hipótesis No Paramétricas

¿De qué depende la PH que debo elegir?

  • Datos proporcionan evidencia empírica de alinearse con los supuestos estadísticas de la prueba elegida.

  • ‘Alinearse’ quiere decir, aproximarse 'razonablemente' bien:

“Todos los modelos son erróneos, pero algunos son útiles”. (George Box)

  • Tener en cuenta, que las pruebas de hipótesis nula de significancia tradicionales son robustas a incumplimientos de algunos supuestos.

¿De qué depende la PH que debo elegir? (cont.)

  • Por ejemplo, las pruebas mencionadas son robustas a incumplimiento leve/moderado de normalidad si y solo si el n es suficientemente grande.

  • Sin embargo, ante el incumplimiento, hay que hacer un análisis concienzudo para tomar una decisión:

Opción 1: Usar la prueba a pesar de leves/moderadas de algún supuesto porque la prueba es robusta ante este incumplimiento.

Opción 2: Usar otra prueba o la misma prueba ‘corregida’ que sí permita analizar apropiadamente los datos que tengo.

Supuestos comunes a todas las PH

    1. Aleatorización
    1. Observaciones independientes

Aleatorización

Aleatorización

  • Muestra es aleatoria para generalizar a una población de interés bien definida.

    • Gold estándar: Muestreo aleatorio simple para alcanzar "Representatividad Estadística".

    • Alternativas más limitadas: Muestreo consecutivo, otras formas de muestreo no probabilístico y asumir "representatividad teórica".

ó
  • Muestra proviene de intervenciones asignadas por azar para hacer inferencia causal sobre una intervención/exposición de interés bien definida.

    • Gold estándar: Asignación aleatoria.

    • Alternativas más limitadas: Control de confusión y asumir "emulación de asignación aleatoria".

Los supuestos no verificables de la investigación clínica

  • La mayoría de la investigación clínica recae en supuestos no verificables.

  • Cuando no hay muestreo aleatorio o asignación aleatoria, existe riesgo alto de que el supuesto no se cumpla.

  • Sin embargo, en ciertos escenarios, puede ser razonable pensar que se alcanzó el supuesto (representatividad teórica o emulación de asignación aleatoria).

  • En estos escenarios, estos supuestos son no testeables completamente, solo parcialmente:

    • Solo podemos refultarlos con los datos observados, pero nunca probar su cumplimiento.
    • El investigador asume una postura y se compremete, temporalmente, con los supuestos hasta disponer de mejor evidencia y actualizar sus posturas.

La ausencia del muestreo probabilístico no siempre es mala

  • Siempre que sea posible, debería optarse por las formas más robustas de hacer inferencia.

    • Solo cuando sea imposible (ej., muestreo aleatorio de pacientes, asignar una exposición dañina, etc) nos queda usar las formas menos robustas.
    • Dado que, bajo ciertas condiciones, se pueden obtener inferencias válidas, es posible responder preguntas con estos enfoques menos robustos aunque el proceso es más largo y controvertido (ej. efecto dañino del cigarro, del petroleo con plomo, cambio climático).
  • Algunas formas de muestreo no probabilístico, bajo ciertas condiciones, pueden razonablemente alcanzar representatividad teórica. La discusión transparente y sincera es importante.

    • Por ejemplo, guías de riesgo de sesgo de estudios de prueba diagnóstica (como QUADAS-2) considera al muestreo consecutivo en el mismo nivel que el muestreo probabilístico en contextos clínicos cuando no es factible realizar muestreo aleatorio para estudios de pruebas diagnósticas.

Advertencia: Abuso de la representatividad teórica!

  • En investigación clínica a menudo se abusa de la representividad teórica.

  • Esto debería evitarse y reservarse solo a casos en los que resulta imposible hacer un muestreo aleatorio (y obtener representatividad estadística) pero se tenga algún procedimiento no probabilístico que pueda, bajo ciertas asunciones razonables, emular la representatividad estadística.

  • Un ejemplo clásico es usar un muestreo consecutivo (bien realizado) en ensayos clínicos, estudios de prueba diagnóstica o pronóstica. Este procedimiento es aceptado en ámbitos clínicos dado que no existe un marco muestral observable o se desea generalizar a nuevos pacientes (idea de superpobación).

¿Qué pasa si supuesto de Aleatoridad no se cumple?

  • Incluso sin una muestra probibilística o una asignación aleatoria, la aleatoridad debe cumplirse.

  • Por eso es que asumimos que se cumple cuando es razonable hacerlo. Si no es razonable, mejor no hacer el estudio.

    • Si este supuesto en realidad no es cierto, su incumplimiento invalida las inferencias realizadas: No inferencias causales válidas, tampoco resultados generalizables a poblaciones de interés.

Observaciones son independientes

  • Esto es equivalente a pensar que todos los sujetos son muestreados de la misma población y que han sido seleccionados de manera independiente de los otros.

    • La selección de un individuo no afecta la selección de otro.
  • ¿Cuándo falla la independencia de observaciones?

    • Cuando hay pareamiento o correlación debido al tiempo, distribución espacial, etc.

¿Se puede evaluar este supuesto?

  • Sí se puede cuando se conoce la(s) variable(s) que generan la dependencia.

  • A menudo no se evalúa, si no que uno lo antepone por el diseño.

  • Los métodos convencionales se pueden extender para lidiar con observaciones dependientes.

Supuestos específicos de algunas PH

    1. Normalidad
    1. Homogenenidad de varianzas (homocedasticidad)

Normalidad

  • Común en el caso de pruebas paramétricas: prueba t de Student, prueba Z y ANOVA.

  • En realidad, requerimos que la distribución muestral del estadístico (p. ej., medias, proporciones, diferencia de medias, etc.) sea normal, no la distribución de la variable.

Normalidad (cont.)

  • Se alcanza si la distribución de la variable respuesta es normal.

  • Si la distribución de la variable respuesta no es normal, pero la muestra es suficientemente grande (\(n \to \infty\)), entonces la distribución muestral de medias es normal: Teorema del Límite Central garantiza normalidad asintótica.

La idea en un Tweet!

Normalidad asintótica de la distribución muestral

Advertencia: ¿Cuándo una muestra es suficientemente grande?

  • Si la muestra es pequeña, es muy importante que la población tenga un distribución normal para que el supuesto de cumpla.

  • Si la muestra es suficientemente grande, las inferencias serán robustas a desviaciones ligeras/moderadas del supuesto de normalidad.

  • Problema: ¿Cuándo la muestra es suficientemente grande?

  • Incluso con muestras consideradas muy grandes si distribución es sesgada, puede no alcanzarse la distribución normal.

  • Ante la duda, mejor usar métodos robustos de manera complementaria (análisis de sensibilidad) o como análisis principal.

¿Cómo evaluar normalidad?

  • La normalidad es sobre la población, no sobre la muestra.

  • Sin embago, usamos a lo observado en la muestra para concluir sobre la población.

  • Métodos gráficos son preferibles: gráfico de qqplot.

  • Métodos de prueba de hipótesis pueden complementar en tamaños de muestras moderados. Nunca usar solos!

¿Cómo evaluar normalidad? (cont.)

  • Preferible.

  • Histogramas tienen problemas con pocos datos

  • Usar gráfico de quantil quantil normal (QQ plot normal), es muy útil con pocos datos.

  • Bandas de confianza son referenciales. Ayudan pero tener cuidado con muestras muy muy grandes.

  • La función ggqqplot del paquete {ggpubr} es muy útil para esto:

¿Qué distribución tiene?

library(ggpubr)
datos2 %>% 
    ggqqplot(x = "x")

Rpta.: La variable x en la muestra tiene una distribución aproximadamente normal. Luego, concluyo que en la población la distribución de la variable x también debería ser normal y, por tanto, la distribución muestral de medias también debería ser normal.

¿Qué distribución tiene esta otra variable?

datos %>% 
  ggqqplot(x = "weight")

Rpta.: La variable x en la muestra tiene una distribución aproximadamente normal, con cierta desviación ligera hacia la derecha. Esto sugiere que la distribución de la población tampoco es normal. Sin embargo, si el n es grande, es razonable asumir que la distribución muestral del estadístico es normal.

¿Y esta otra, qué distribución tiene?

datos %>% 
  ggqqplot(x = "e2")

Rpta.: LA variable x en la muestra tiene una distribución que dista bastante de la normal, con una marcada desviación hacia la derecha. Esto sugiere que la distribución de la población tampoco es normal. Sin embargo, en este caso también es incierto saber qué tan grande debe ser el n para que se cumpla el TLC. Sería mejor usar alguna alternativa robusta.

x:

datos2 %>% 
  shapiro_test(x)
# A tibble: 1 × 3
  variable statistic     p
  <chr>        <dbl> <dbl>
1 x            0.992 0.973

H0: La distribucion de la variable en la poblacion es normal. Ha: La distribucion de la variable en la poblacion no es normal. Conclusión: Con un nivel de significancia del 5%, no se puede rechazar la H0. La distribución de la variable en la población podría ser normal.

weight:

datos %>% 
  shapiro_test(weight)
# A tibble: 1 × 3
  variable statistic        p
  <chr>        <dbl>    <dbl>
1 weight       0.890 0.000221

H0: La distribucion de la variable en la poblacion es normal. Ha: La distribucion de la variable en la poblacion no es normal. Conclusión: Con un nivel de significancia del 5%, se rechaza la H0. La distribución de la variable en la población no es normal. Comentario: Según la evidencia gráfica, esta desviación es ligera, por lo que podríamos confiar en la normalidad asintótica.

e2:

datos %>% 
  shapiro_test(e2)
# A tibble: 1 × 3
  variable statistic        p
  <chr>        <dbl>    <dbl>
1 e2           0.910 0.000697

H0: La distribucion de la variable en la poblacion es normal. Ha: La distribucion de la variable en la poblacion no es normal. Conclusión: Con un nivel de significancia del 5%, se rechaza la H0. La distribución de la variable en la población no es normal.

Homogeneidad de varianzas

  • Consiste en que la varianza de la variable en cada grupo a comparar tiene el mismo valor.

Homogeneidad de varianzas (cont.)

  • Muchas pruebas (t de Student, ANOVA, etc.) requieren el cumplimiento de este supuesto para poder dar inferencias válidas de comparación de grupos.

  • Su incumplimiento invalida la inferencia: No se puede confiar en los valores p e IC95%.

  • Lo bueno es que, a menudo, estas pruebas presentan modificaciones o correcciones que permiten obtener inferencias robustas.

¿Cómo evaluar homogeneidad de varianzas?

  • Actualmente son considerados preferibles.

  • Se pueden comparar los gráficos cuantil - cuantil normal.

  • Si hay homocedasticidad, las líneas diagonales deberían ser paralelas o aproximadamente paralelas.

¿Hay homogeneidad de varianzas?

datos2 %>% 
  ggqqplot("x", color = "grupo")

Rpta: Sí hay evidencia gráfica de homocedasticidad en la muestra (líneas paralelas), luego, debería concluyo que también habría en las poblaciones.

¿Y en este otro, hay homogeneidad de varianzas?

datos3 %>% 
  ggqqplot("y", color = "grupo")

Rpta: No, hay evidencia gráfica de heterocedasticidad en la muestra (líneas secantes), luego, debería concluyo que también habría heterogeneidad de varianzas en las poblaciones.

  • Existen varias pruebas de hipótesis: Leven, Breslow, etc.

  • El principal problema es que no funcionan bien con n muy grandes (siempre rechazan la H0) o muy pequeños (siempre aceptan la H0).

  • Además requieren supuestos como la normalidad, entre otros.

  • Pueden usarse de manera complementaria a los gráficos, pero nunca solos.

  • No las abordaremos en este curso. Preferiremos el método gráfico.

Supuestos ‘implícitos’ de todas las PH

    1. Datos medidos sin error
    1. No existencia de sesgo (error sistemático)

Pruebas de Hipótesis con R

  • Existen distintos paquetes en R base para realizar PH o estimación.

  • Hay mucha inconsistencia entre estos.

  • El paquete {rstatix} compila todos estos en una sola sintaxis R tidy.

# install.packages("rstatix")
library(rstatix)

Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Uno o dos grupos

Agenda

  1. Introducción a la inferencia estadística

  2. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Uno o dos grupos

  3. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Tres o más grupos

  4. Pruebas de hipótesis para variables respuesta categóricas

Para un grupo

  • Se usa función t_test() de paquete {rstatix}.

  • Permite obtener el valor p para una hipótesis dada y el intervalo de confianza para la media.

datos %>% 
  t_test(weight ~ 1, mu = 100, detailed = TRUE) 
# A tibble: 1 × 12
  estimate .y.    group1 group2         n stati…¹        p    df conf.…² conf.…³
*    <dbl> <chr>  <chr>  <chr>      <int>   <dbl>    <dbl> <dbl>   <dbl>   <dbl>
1     60.5 weight 1      null model    50   -35.6 1.15e-36    49    58.3    62.8
# … with 2 more variables: method <chr>, alternative <chr>, and abbreviated
#   variable names ¹​statistic, ²​conf.low, ³​conf.high
  • El argumento mu = número es un valor de referencia contra el que deseamos compararnos.

  • El argumento detailed = TRUE permite obtener también los intervalos de confianza.

  • La función gt() es para mejorar visualización del resultado.

library(gt)
datos %>% 
  t_test(weight ~ 1, mu = 100, detailed = TRUE) %>% 
  gt()
estimate .y. group1 group2 n statistic p df conf.low conf.high method alternative
60.524 weight 1 null model 50 -35.57465 1.15e-36 49 58.29404 62.75396 T-test two.sided
  • Agregaremos gt() a partir de ahora.

  • Interpretación:

La media estimada de glucosa fue de 95.48 mg/dL (IC95% 71.6 mg/dL a 119.4 mg/dL). Aunque este valor fue menor a 100 mg/dL (valor de referencia), no es posible concluir que la media poblacional es diferente del valor de refrencia 100 mg/dL (p = 0.627).

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Normalidad o cumplimiento del TLC.

library(ggpubr)
datos %>% 
  ggqqplot(x = "weight")

  • Supuesto de homogeneidad de varianzas (homocedasticidad) no importa aquí ya que solo hay 1 grupo!

  • Supuestos implícitos (no error de medición ni sesgos)

¿El nivel medio de estradiol es difernete de 50 UI en la población?

Para variable estradiol:

datos %>% 
  t_test(e2 ~ 1, mu = 50, detailed = TRUE) 
# A tibble: 1 × 12
  estimate .y.   group1 group2     n stati…¹      p    df conf.…² conf.…³ method
*    <dbl> <chr> <chr>  <chr>  <int>   <dbl>  <dbl> <dbl>   <dbl>   <dbl> <chr> 
1     113. e2    1      null …    53    6.46 3.6e-8    52    93.2    132. T-test
# … with 1 more variable: alternative <chr>, and abbreviated variable names
#   ¹​statistic, ²​conf.low, ³​conf.high

Note

Supuestos:

  • Aleatorización

  • Indenpendencia de observaciones

  • Normalidad o cumplimiento del TLC.

datos %>% 
  ggqqplot(x = "e2")

  • Supuesto de homogeneidad de varianzas (homocedasticidad) no importa aquí ya que solo hay 1 grupo!

  • Supuestos implícitos (no error de medición ni sesgos)

  • Interpretación:

La media estimada de estradiol fue de 112.67 UI. Debido a la desviación severa de la normalidad, preferimos no confiar en la inferencia generada por la prueba de hipótesis t de Student y obtamos por una alternativa robusta no parmétrica.

Prueba del Signo:

  • Permite comparar la mediana (ya no la media) contra un valor de referencia.

  • No permite estimar intervalos de confianza.

datos %>% 
  sign_test(weight ~ 1, mu = 0, detailed = TRUE) 
# A tibble: 1 × 12
  estimate .y.    group1 group2         n stati…¹        p    df conf.…² conf.…³
*    <dbl> <chr>  <chr>  <chr>      <int>   <dbl>    <dbl> <dbl>   <dbl>   <dbl>
1     58.8 weight 1      null model    50      50 1.78e-15    50      56    62.5
# … with 2 more variables: method <chr>, alternative <chr>, and abbreviated
#   variable names ¹​statistic, ²​conf.low, ³​conf.high
  • Interpretación:

La mediana estimada de glucosa fue de 95.53 mg/dL. Aunque este valor fue menor a 100 mg/dL (valor de referencia), no es posible concluir que la media poblacional es diferente del valor de refrencia (p = 0.627).

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Variable al menos en escala ordinal

  • Supuestos implícitos (no error de medición ni sesgos)

¿El nivel mediano de estradiol es difernete de 50 UI en la población?

datos %>% 
  sign_test(e2 ~ 1, mu = 50, detailed = TRUE) 
# A tibble: 1 × 12
  estim…¹ .y.   group1 group2     n stati…²       p    df conf.…³ conf.…⁴ method
*   <dbl> <chr> <chr>  <chr>  <int>   <dbl>   <dbl> <dbl>   <dbl>   <dbl> <chr> 
1    104. e2    1      null …    53      42 2.25e-5    53    75.8    123. Sign-…
# … with 1 more variable: alternative <chr>, and abbreviated variable names
#   ¹​estimate, ²​statistic, ³​conf.low, ⁴​conf.high

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Variable al menos en escala ordinal

  • Supuestos implícitos (no error de medición ni sesgos)

  • Interpretación:

La mediana estimada de estradiol fue de 103.95 UI. Este valor fue mayor a 50 UI (valor de referencia) (p < 0.001).

Estimación y PH para dos grupos dependientes

  • Se usa la prueba t de Student para datos pareados.

  • Como los datos están pareados 1:1, la prueba trabaja sobre la diferencia de los valores individuales convirtiendo el problema en una sola muestra.

  • Por lo tanto, los supuestos son los mismos que para la `prueba t de Student de un solo grupo.

Ejemplo: ¿Cuál es el efecto de la Vitamina C en el crecimiento de los dientes en cuyes experimentales?

len: Longitud de dientes al final del experimento.

supp: Suplemento de vitamina C (VC vs. OJ)

df %>% t_test(len ~ supp, 
              paired = TRUE, 
              detailed = TRUE) %>% gt()
estimate .y. group1 group2 n1 n2 statistic p df conf.low conf.high method alternative
3.7 len OJ VC 30 30 3.302585 0.00255 29 1.408659 5.991341 T-test two.sided

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Normalidad o cumplimiento del TLC.

library(ggpubr)
df3 %>% 
  ggqqplot(x = "dif")

  • Variable al menos en escala ordinal

  • Supuestos implícitos (no error de medición ni sesgos)

  • Se tienen dos opciones: Prueba del signo vs. Prueba de rangos signados de Wilcoxon.

  • Se trabaja igual que para t-test pareada, con al diferencia de los valores de tal forma que se tiene solo un grupo.

  • Prueba del signo no requiere supuesto de simetría de distribución para comparar medianas.

  • Prueba de Wilcoxon requiere supuesto de simetría de distribución para comparar medianas.

Prueba del signo:

df %>% sign_test(len ~ supp, 
              detailed = TRUE) %>% gt()
estimate .y. group1 group2 n1 n2 statistic p df conf.low conf.high method alternative
4.85 len OJ VC 30 30 19 0.136 29 -0.3 7.9 Sign-Test two.sided

Prueba de Wilcoxon:

df %>% wilcox_test(len ~ supp, 
              detailed = TRUE) %>% gt()
estimate .y. group1 group2 n1 n2 statistic p conf.low conf.high method alternative
4.000014 len OJ VC 30 30 575.5 0.0645 -0.1000097 8.500017 Wilcoxon two.sided

Supuestos de la Prueba del Signo

  • Aleatorización

  • Indenpendencia de observaciones

  • Escala de medición al menos ordinal

Supuestos de la Prueba de Wilcoxon

  • Aleatorización

  • Indenpendencia de observaciones

  • Escala de medición al menos ordinal

  • Distribución simétrica

Estimación y PH para dos grupos independientes

  • Se usa prueba t de Student para grupos independientes.
datos2 %>% 
  t_test(weight ~ treat, detailed = TRUE, var.equal = TRUE) %>% 
  gt()
estimate estimate1 estimate2 .y. group1 group2 n1 n2 statistic p df conf.low conf.high method alternative p.adj p.adj.signif
-2.2812500 59.21875 61.50000 weight Placebo Dosis 1 16 16 -0.7745439 0.445 30 -8.296318 3.733818 T-test two.sided 1 ns
-1.5979167 59.21875 60.81667 weight Placebo Dosis 2 16 18 -0.7126840 0.481 32 -6.164947 2.969114 T-test two.sided 1 ns
0.6833333 61.50000 60.81667 weight Dosis 1 Dosis 2 16 18 0.2249600 0.823 32 -5.504008 6.870674 T-test two.sided 1 ns

Supuestos de la Prueba t de Student para grupos independientes

  • Aleatorización

  • Indenpendencia de observaciones

  • Normalidad

  • Homogeneidad de varianzas (*)

datos2 %>% 
  ggqqplot("weight", color = "treat")

datos2 %>% 
  group_by(treat) %>% 
  skim(weight)
Data summary
Name Piped data
Number of rows 53
Number of columns 14
_______________________
Column type frequency:
numeric 1
________________________
Group variables treat

Variable type: numeric

skim_variable treat n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
weight Placebo 1 0.94 59.22 5.61 50.1 54.90 58.55 61.12 71.0 ▅▇▆▃▃
weight Dosis 1 1 0.94 61.50 10.36 50.1 55.68 59.30 64.22 92.1 ▇▇▁▁▁
weight Dosis 2 1 0.95 60.82 7.24 51.4 54.50 60.05 65.88 74.5 ▇▂▃▃▃
  • Si no confiamos en la homogeneidad de varianzas, podemos hacer la prueba robusta a la heterogeneidad de varianzas usando la corrección de Satterwhite:
datos2 %>% 
  t_test(weight ~ treat, detailed = TRUE, var.equal = FALSE) %>% 
  gt()
estimate estimate1 estimate2 .y. group1 group2 n1 n2 statistic p df conf.low conf.high method alternative p.adj p.adj.signif
-2.2812500 59.21875 61.50000 weight Placebo Dosis 1 16 16 -0.7745439 0.446 23.09487 -8.372645 3.810145 T-test two.sided 1 ns
-1.5979167 59.21875 60.81667 weight Placebo Dosis 2 16 18 -0.7235647 0.475 31.45480 -6.099330 2.903497 T-test two.sided 1 ns
0.6833333 61.50000 60.81667 weight Dosis 1 Dosis 2 16 18 0.2203118 0.827 26.44841 -5.686973 7.053640 T-test two.sided 1 ns
  • Se usa prueba de suma de rangos de Wilcoxon, también denominada U de Mann Withney.
datos2 %>% 
  wilcox_test(e2 ~ treat, detailed = TRUE) %>% 
  gt()
estimate .y. group1 group2 n1 n2 statistic p conf.low conf.high method alternative p.adj p.adj.signif
-32.14 e2 Placebo Dosis 1 17 17 106 0.193 -64.80 19.98 Wilcoxon two.sided 0.579 ns
-20.27 e2 Placebo Dosis 2 17 19 125 0.257 -68.78 26.52 Wilcoxon two.sided 0.579 ns
-0.40 e2 Dosis 1 Dosis 2 17 19 160 0.975 -41.24 33.54 Wilcoxon two.sided 0.975 ns

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Escala de medición al menos ordinal

  • Igual forma de distribución entre los grupos (solo diferencia en la posición)

Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Tres o más grupos

Agenda

  1. Introducción a la inferencia estadística

  2. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Uno o dos grupos

  3. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Tres o más grupos

  4. Pruebas de hipótesis para variables respuesta categóricas

Una motivación para comenzar

  • Se desea comparar 3 tratamientos (A, B y C) para evaluar su efecto en el IMC.

  • Una opción es comparar los promedios de IMC al final de la intervención.

  • Las 3 pruebas t de Student con sus valores p se muestran:

    • A vs B (p = 0.032)

    • B vs C (p = 0.062)

    • A vs C (p = 0.047)

Una motivación para comenzar (cont.)

  • ¿Con un nivel de significancia de 5%, podemos concluir que existe asociación entre el tratamiento y el IMC? ¿Entre qué tratamientos el IMC promedio es diferente?

  • Asumiremos que controlar la probabilidad de error tipo 1 es una cuestión fundamental en este estudio.

    • Hay un debate filósfico/estadístico de en qué circunstancias este control no es apropiado.

    • Corregir por la probabilidad de error tipo 1 no es la única opción para obtener inferencias válidas.

Probabilidad de error tipo 1

  • Probabilidad de error tipo 1 es también conocido como nivel de significancia.

  • \(1 - Pr(\beta)\) es conocida como Potencia o Poder estadístico.

¡Alerta! A más pruebas, más error

  • Si cada prueba t de Student tiene un nivel de significancia prefijado de 5% (\(\alpha = 0.05\)), la probabilidad de error tipo 1 global (de todas las pruebas en conjunto) no necesariamente será de 0.05.

  • Asumamos que las tres hipótesis son independientes entre sí, entonces tendríamos lo siguiente:

A más pruebas, más error (cont.)

  • Pruebas de hipótesis para comparar 3 o más grupos permiten mantener la probabilidad de error tipo 1 global por debajo de un nivel pre-fijado.

Imagen tomada de: Lee S; et al. What is the proper way to apply the multiple comparison test? Korean Joournal of Anesthesiology 2018; 71(5): 353-360. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6193594/#!po=73.0769

Soluciones al problema de la probabilidad de error tipo 1

  • No hay consenso entre expertos.

  • Las agencias reguladoras (p. ej., EMA, FDA, IETSI) optan por el ajuste de comparaciones múltiples.

    • Una opción es usar una secuencia ANOVA, luego pruebas de comparaciones múltiples.
    • Otras soluciones, más populares que la secuencia de ANOVA, las discutiremos al final.

Pruebas globables que controlan la probabilidad de error tipo 1

  • Podemos probar hipótesis acerca de parámetros de 3 o más grupos.

  • El enfoque similar que para dos poblaciones, pero las hipótesis nula y alterna son las siguientes:

H0: Todas las poblaciones tienen iguales medias|proporciones|medianas|tasas de la variable respuesta son iguales.

HA: Al menos dos poblaciones tienen diferentes medias|proporciones|medianas|tasas de la variable respuesta.

Análisis de Varianza de una vía

  • También llamada: one-way ANOVA

  • Permite probar la hipótesis de diferencia de medias entre dos o más poblaciones.

    • Los usamos comúnmente para probar diferencia de medias entre 3+.
  • Nombre del método hace referencia a que analiza la variabilidad (“varianza”):

    • Variabilidad de la variable numérica dentro de cada grupo y entre los grupos.
    • Si se cumplen ciertos supuestos, las varianzas permiten comparar medias.

Hipótesis estadísticas del ANOVA one-way

  • H0: Todas las medias poblacionales son iguales entre los grupos.

  • Ha: Al menos dos medias poblacionales son diferentes entre los grupos.

Lógica de ANOVA (1/4)

Mismas varianzas entre grupos (\(Var_{EG} = \triangle{X} = 10\)) entre escenarios, pero diferente varianza intragrupo (\(VAR_{IG}\)) entre escenarios)

Lógica de ANOVA (2/4)

Lógica de ANOVA (3/4)

Diferentes varianzas entre grupos (\(Var_{EG}\)) entre escenarios, pero misma varianza intragrupo (\(VAR_{IG} = \triangle{X} = 15\)) entre escenarios)

Lógica de ANOVA (4/4)

En resumen: ANOVA

Distribución y estadístico F

Particionando la variabilidad en ANOVA one-way

ANOVA one-way en R

library(rstatix)
datos %>% 
  anova_test(weight ~ treat, detailed = TRUE)
ANOVA Table (type II tests)

  Effect    SSn      SSd DFn DFd     F     p p<.05   ges
1  treat 49.021 7171.016   2 100 0.342 0.711       0.007
  • La prueba ANOVA one-way no genera resultados puntuales, debemos generarlos con otra función:
datos %>% 
  group_by(treat) %>% 
  get_summary_stats(weight, type = "mean_sd")
# A tibble: 3 × 5
  treat   variable     n  mean    sd
  <fct>   <fct>    <dbl> <dbl> <dbl>
1 Placebo weight      33  60.4  6.40
2 Dosis 1 weight      33  62.1 10.4 
3 Dosis 2 weight      37  61.2  8.13
  • También es bueno visualizar los patrones mediante gráfico de cajas:
library(ggpubr)
datos %>% 
  ggboxplot(x = "treat", y = "weight")

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Normalidad

    • Supuesto de normalidad condicional: \(Y_i \sim Normal\), es decir \(Y|x \sim Normal\)
library(ggpubr)
datos %>% 
  ggqqplot("weight", facet.by = "treat")

+ Una mejor forma de evaluar la normalidad es usando los residuos.
  • Homogeneidad de varianzas (*)

    • Se podría evaluar si las rectas de los gráficos qqplot normal son paralelas o aproximadamente paralelas:
datos %>% 
  ggqqplot("weight", color = "treat")

  • Otra opción es evaluar los residuales. Esto lo veremos en regresión lineal.

  • Es preferible asumir que no hay homocedaticidad y realizar un ajuste robusto a heterogeneidad de varianzas.

datos %>% 
  anova_test(weight ~ treat, detailed = TRUE, white.adjust = TRUE)
ANOVA Table (type II tests)

  Effect DFn DFd     F    p p<.05
1  treat   2 100 0.329 0.72      
  • No valores extremos.

(*) Este supuesto puede flexibilizarse:

  1. Usando algún método robusto de estimación de varianza.

  2. Usando remuestreo (Prueba de permutación o Bootstrapping)

datos %>% 
  anova_test(lh ~ treat, detailed = TRUE)
ANOVA Table (type II tests)

  Effect     SSn      SSd DFn DFd     F    p p<.05   ges
1  treat 470.911 21640.35   2 103 1.121 0.33       0.021
  • La prueba ANOVA one-way no genera resultados puntuales, debemos generarlos con otra función:
datos %>% 
  group_by(treat) %>% 
  get_summary_stats(lh, type = "mean_sd")
# A tibble: 3 × 5
  treat   variable     n  mean    sd
  <fct>   <fct>    <dbl> <dbl> <dbl>
1 Placebo lh          34 11.6  17.7 
2 Dosis 1 lh          34 13.7  16.6 
3 Dosis 2 lh          38  8.65  7.75
  • También es bueno visualizar los patrones mediante gráfico de cajas:
datos %>% 
  ggboxplot(x = "treat", y = "lh")

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Normalidad

    • Supuesto de normalidad condicional: \(Y_i \sim Normal\), es decir \(Y|x \sim Normal\)
library(ggpubr)
datos %>% 
  ggqqplot("lh", facet.by = "treat")

+ Una mejor forma de evaluar la normalidad es usando los residuos.
  • Homogeneidad de varianzas (*)

    • Se podría evaluar si las rectas de los gráficos qqplot normal son paralelas o aproximadamente paralelas:
datos %>% 
  ggqqplot("lh", color = "treat")

  • Otra opción es evaluar los residuales. Esto lo veremos en regresión lineal.

  • A veces es preferible asumir que no hay homocedaticidad y realizar un ajuste robusto a heterogeneidad de varianzas.

datos %>% 
  anova_test(lh ~ treat, detailed = TRUE, white.adjust = TRUE)
ANOVA Table (type II tests)

  Effect DFn DFd     F     p p<.05
1  treat   2 103 1.502 0.227      
  • No valores extremos.

(*) Este supuesto puede flexibilizarse:

  1. Usando algún método robusto de estimación de varianza.

  2. Usando remuestreo (Prueba de permutación o Bootstrapping)

Kruskal Wallis test

datos %>% 
  kruskal_test(weight ~ treat)
# A tibble: 1 × 6
  .y.        n statistic    df     p method        
* <chr>  <int>     <dbl> <int> <dbl> <chr>         
1 weight   106    0.0347     2 0.983 Kruskal-Wallis
  • La prueba Kruskal Wallis no genera resultados puntuales, debemos generarlos con otra función:
datos %>% 
  group_by(treat) %>% 
  get_summary_stats(weight, type = "median_iqr")
# A tibble: 3 × 5
  treat   variable     n median   iqr
  <fct>   <fct>    <dbl>  <dbl> <dbl>
1 Placebo weight      33     59   8.4
2 Dosis 1 weight      33     60   9  
3 Dosis 2 weight      37     61  12  
  • También es bueno visualizar las distribuciones
library(ggpubr)
datos %>% 
  ggboxplot(y = "weight", x = "treat")

Supuestos

  • Aleatorización

  • Indenpendencia de observaciones

  • Misma distribución salvo por la mediana:

    • Esto significa que Kruskal Wallis también es perjudicado en cierto modo por la heterogeneidad de varianzas porque afecta el supuesto de igualdad de distribuciones

    • Podemos usar gráfico de densidades:

library(ggpubr)
datos %>% 
  ggdensity(x = "weight", 
            y = "..density..", 
            fill = "treat", 
            color = "treat", 
            add = "median")

+ Podemos usar gráfico de violin: Combina cajas y densidad
library(ggpubr)
datos %>% 
  ggviolin(x = "treat", 
            y = "weight", 
            color = "treat", 
            add = "boxplot")

Comparaciones múltiples

  • Hay varios enfoques de comparaciones múltiples.

  • Algunas son pre-hoc y otras post-hoc.

  • Veremos solo un par para ejemplificar:

  • Para ANOVA one-way clásico:
aov(weight ~ treat, data = datos) %>% 
  tukey_hsd()
# A tibble: 3 × 9
  term  group1  group2  null.value estimate conf.low conf.high p.adj p.adj.sig…¹
* <chr> <chr>   <chr>        <dbl>    <dbl>    <dbl>     <dbl> <dbl> <chr>      
1 treat Placebo Dosis 1          0    1.72     -3.24      6.68 0.689 ns         
2 treat Placebo Dosis 2          0    0.745    -4.08      5.57 0.928 ns         
3 treat Dosis 1 Dosis 2          0   -0.974    -5.80      3.85 0.881 ns         
# … with abbreviated variable name ¹​p.adj.signif
  • Si homogeneidad de varianzas no se cumple:
datos %>% 
  games_howell_test(weight ~ treat)
# A tibble: 3 × 8
  .y.    group1  group2  estimate conf.low conf.high p.adj p.adj.signif
* <chr>  <chr>   <chr>      <dbl>    <dbl>     <dbl> <dbl> <chr>       
1 weight Placebo Dosis 1    1.72     -3.42      6.85 0.701 ns          
2 weight Placebo Dosis 2    0.745    -3.43      4.91 0.904 ns          
3 weight Dosis 1 Dosis 2   -0.974    -6.39      4.44 0.903 ns          
  • En epidemiología e investigación clínica se prefiere ajustes más conservadores. Uno de ellos es el ajuste de Bonferroni (uno de los más conservadores)
library(emmeans)
datos %>% 
  emmeans_test(weight ~ treat, p.adjust.method = "bonferroni")
# A tibble: 3 × 9
  term  .y.    group1  group2     df statistic     p p.adj p.adj.signif
* <chr> <chr>  <chr>   <chr>   <dbl>     <dbl> <dbl> <dbl> <chr>       
1 treat weight Placebo Dosis 1   100    -0.824 0.412     1 ns          
2 treat weight Placebo Dosis 2   100    -0.367 0.714     1 ns          
3 treat weight Dosis 1 Dosis 2   100     0.480 0.632     1 ns          
datos %>% 
  dunn_test(weight ~ treat)
# A tibble: 3 × 9
  .y.    group1  group2     n1    n2 statistic     p p.adj p.adj.signif
* <chr>  <chr>   <chr>   <int> <int>     <dbl> <dbl> <dbl> <chr>       
1 weight Placebo Dosis 1    33    33    0.173  0.863     1 ns          
2 weight Placebo Dosis 2    33    37    0.148  0.882     1 ns          
3 weight Dosis 1 Dosis 2    33    37   -0.0300 0.976     1 ns          

Pruebas de hipótesis para variables respuesta categóricas

Agenda

  1. Introducción a la inferencia estadística

  2. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Uno o dos grupos

  3. Estimación y Pruebas de Hipótesis para Variables Respuesta Numéricas: Tres o más grupos

  4. Pruebas de hipótesis para variables respuesta categóricas

Prueba Chi cuadrado

table(datos2$married2, datos2$treat) -> xtab

xtab
                
                 Placebo Dosis 1 Dosis 2
  Without couple       9      10       8
  With couple          8       7      11
xtab  %>% 
  chisq_test()
# A tibble: 1 × 6
      n statistic     p    df method          p.signif
* <int>     <dbl> <dbl> <int> <chr>           <chr>   
1    53      1.04 0.594     2 Chi-square test ns      
xtab  %>% 
  chisq_test() %>%  
  chisq_descriptives()
# A tibble: 6 × 9
  Var1           Var2    observed  prop row.prop col.prop expec…¹  resid std.r…²
  <fct>          <fct>      <int> <dbl>    <dbl>    <dbl>   <dbl>  <dbl>   <dbl>
1 Without couple Placebo        9 0.170    0.333    0.529    8.66  0.115   0.200
2 With couple    Placebo        8 0.151    0.308    0.471    8.34 -0.118  -0.200
3 Without couple Dosis 1       10 0.189    0.370    0.588    8.66  0.455   0.789
4 With couple    Dosis 1        7 0.132    0.269    0.412    8.34 -0.464  -0.789
5 Without couple Dosis 2        8 0.151    0.296    0.421    9.68 -0.540  -0.962
6 With couple    Dosis 2       11 0.208    0.423    0.579    9.32  0.550   0.962
# … with abbreviated variable names ¹​expected, ²​std.resid
datos2 %>% 
  tbl_cross(
    row = married2,
    col = treat, 
    percent = "row"
  ) %>% 
  add_p()
treat Total p-value1
Placebo Dosis 1 Dosis 2
Marital status, recat 0.6
    Without couple 9 (33%) 10 (37%) 8 (30%) 27 (100%)
    With couple 8 (31%) 7 (27%) 11 (42%) 26 (100%)
Total 17 (32%) 17 (32%) 19 (36%) 53 (100%)
1 Pearson's Chi-squared test

Prueba exacta de Fisher

table(datos2$married2, datos2$treat) -> xtab

xtab
                
                 Placebo Dosis 1 Dosis 2
  Without couple       9      10       8
  With couple          8       7      11
xtab  %>% 
  fisher_test()
# A tibble: 1 × 3
      n     p p.signif
* <int> <dbl> <chr>   
1    53 0.696 ns      
datos2 %>% 
  tbl_cross(
    row = married2,
    col = treat, 
    percent = "row"
  ) %>% 
  add_p(
     test = "fisher.test"
  )
treat Total p-value1
Placebo Dosis 1 Dosis 2
Marital status, recat 0.7
    Without couple 9 (33%) 10 (37%) 8 (30%) 27 (100%)
    With couple 8 (31%) 7 (27%) 11 (42%) 26 (100%)
Total 17 (32%) 17 (32%) 19 (36%) 53 (100%)
1 Fisher's exact test

Creación de tablas reproducibles con gtsummary

  • Se puede agregar el valor p en las tablas de gtsummary:
library(gtsummary)
datos2 %>%
  dplyr::select(treat, age, weight, e2, fsh, lh, race, married) %>% 
  tbl_summary(
    by = treat
  ) %>%  
  add_p()
Characteristic Placebo, N = 171 Dosis 1, N = 171 Dosis 2, N = 191 p-value2
Age, years 34.0 (32.0, 37.0) 31.0 (27.0, 38.0) 35.0 (30.0, 36.5) >0.9
Weight, kg 59 (55, 61) 59 (56, 64) 60 (54, 66) >0.9
    Unknown 1 1 1
Estradiol 71 (40, 134) 112 (91, 130) 110 (76, 158) 0.4
Folicullo stimulant hormon 3.66 (2.17, 5.49) 4.00 (2.61, 4.83) 4.37 (2.54, 5.30) >0.9
Luteinizant Hormon 6 (3, 15) 7 (4, 15) 6 (4, 14) >0.9
Race
    Mestiza 17 (100%) 17 (100%) 19 (100%)
Marital status 0.6
    Single 8 (47%) 9 (53%) 8 (42%)
    Divorced 0 (0%) 1 (5.9%) 0 (0%)
    Widowed 1 (5.9%) 0 (0%) 0 (0%)
    Cohabiting 0 (0%) 1 (5.9%) 0 (0%)
    Married 8 (47%) 6 (35%) 11 (58%)
1 Median (IQR); n (%)
2 Kruskal-Wallis rank sum test; Fisher's exact test

Recomendaciones de reporte

  • No reporte valores p innecesarios, que no respondan sus preguntas de investigación pre-definidas.

  • Es una mala práctica reportar tablas comparativas descriptivas con valores p. Lamentablemente es muy difundida.

  • Varias guías, comenzando por STROBE (para observacionales) y CONSORT (para ensayos clínicos) explícitamente recomiendan en contra de reportar estas tablas. Solo haga una comparación descriptiva de los resultados de la tabla.

¿Qué dice STROBE?

  • La guía “Strengthening the reporting of observational studies in epidemiology (STROBE) statement” da algunas recomendaciones para tablas tipo 1:

¿Qué dice STROBE?

  • STROBE recomienda en contra de reportar valores p en las tablas descriptivas!!
https://journals.lww.com/epidem/Fulltext/2007/11000/Strengthening_the_Reporting_of_Observational.28.aspx
  • Lamentablemente sigue siendo una mala práctica muy difundida. Evitemos esta mala práctica.

¿Qué dice CONSORT?

  • El “Consolidated Standards of Reporting Trials (CONSORT)” recomienda no usar valores p ni métodos de inferencia estadística en la Tabla 1.

  • Para más información revise el siguiente artículo: https://www.bmj.com/content/340/bmj.c869

Nuestro turno



  • Descargue la carpeta denominada taller06 disponible en la carpeta compartida.

  • Abra el proyecto denominado taller06.Rproj

  • Complete y ejecute el código faltante en los chunk de código.

  • Una vez culmine todo el proceso, renderice el archivo .qmd.



 

¡Gracias!
¿Preguntas?




@psotob91

https://github.com/psotob91

percys1991@gmail.com